/*
 * motors.h
 *
 *  Created on: 22.02.2012
 *      Author: Roma Jam
 */

#ifndef MOTORS_H_
#define MOTORS_H_

#define Motor_GPIO_Port     GPIOB
#define Motor_CLK           RCC_APB2Periph_GPIOB

#define MotorUp             GPIO_Pin_7                                          // Hardware setup
#define MotorDown           GPIO_Pin_6                                          //
#define MotorLeft           GPIO_Pin_8                                          //
#define MotorRight          GPIO_Pin_9                                          //

#define MotorUp_On()        GPIO_ResetBits(Motor_GPIO_Port, MotorUp)
#define MotorUp_Off()       GPIO_SetBits(Motor_GPIO_Port, MotorUp)
#define MotorDown_On()      GPIO_ResetBits(Motor_GPIO_Port, MotorDown)
#define MotorDown_Off()     GPIO_SetBits(Motor_GPIO_Port, MotorDown)
#define MotorLeft_On()      GPIO_ResetBits(Motor_GPIO_Port, MotorLeft)
#define MotorLeft_Off()     GPIO_SetBits(Motor_GPIO_Port, MotorLeft)
#define MotorRight_On()     GPIO_ResetBits(Motor_GPIO_Port, MotorRight)
#define MotorRight_Off()    GPIO_SetBits(Motor_GPIO_Port, MotorRight)

class motors_t {
private:
public:
    void Init(void);
};
extern motors_t Motor;

struct motors_var_t {
    bool motor_flag;
};
extern motors_var_t motor;
#endif /* MOTORS_H_ */
